Skip to content

Comments

feat: Add support for multiple AI providers (OpenAI, Claude, Gemini, Ollama) (Vibe Kanban)#4

Merged
d1maash merged 1 commit intomainfrom
vk/f3b9-api-openai-claud
Jan 25, 2026
Merged

feat: Add support for multiple AI providers (OpenAI, Claude, Gemini, Ollama) (Vibe Kanban)#4
d1maash merged 1 commit intomainfrom
vk/f3b9-api-openai-claud

Conversation

@d1maash
Copy link
Owner

@d1maash d1maash commented Jan 25, 2026

Summary

This PR adds support for multiple external AI providers for file classification, extending beyond the existing local MobileBERT model. Users can now choose from various AI backends based on their preferences and requirements.

Supported Providers

Provider Model (default) Requirements
Local (MobileBERT) MobileBERT MNLI None (offline)
OpenAI gpt-4o-mini API key
Anthropic (Claude) claude-3-haiku API key
Google Gemini gemini-1.5-flash API key
Ollama llama3.2 Local Ollama server

Changes Made

New Files

  • src/ai/providers/types.ts - Provider interface and shared types
  • src/ai/providers/openai.ts - OpenAI provider implementation
  • src/ai/providers/anthropic.ts - Anthropic Claude provider implementation
  • src/ai/providers/gemini.ts - Google Gemini provider implementation
  • src/ai/providers/ollama.ts - Ollama (local LLM) provider implementation
  • src/ai/providers/local.ts - Wrapper for existing MobileBERT classifier
  • src/ai/providers/index.ts - Provider factory and manager

Modified Files

  • src/config.ts - Added AI provider configuration schema with env variable support
  • src/core/analyzer.ts - Integrated provider system into file analysis
  • src/cli.ts - Added new ai command for provider management
  • src/index.ts - Exported new provider types and classes

New CLI Commands

# List available providers
sortora ai list

# Show current configuration
sortora ai info

# Set active provider (prompts for API key if needed)
sortora ai set openai
sortora ai set anthropic
sortora ai set gemini
sortora ai set ollama
sortora ai set local

# Test current provider
sortora ai test

# Use specific provider when scanning
sortora scan ~/Downloads --ai --provider openai

Configuration

Environment Variables

SORTORA_AI_PROVIDER=openai    # Override default provider
OPENAI_API_KEY=sk-...         # OpenAI API key
ANTHROPIC_API_KEY=sk-ant-...  # Anthropic API key
GEMINI_API_KEY=...            # Google Gemini API key
OLLAMA_HOST=http://localhost:11434  # Ollama server URL

Config File (~/.config/sortora/config.yaml)

ai:
  provider: openai
  openai:
    apiKey: sk-...
    model: gpt-4o-mini
  anthropic:
    apiKey: sk-ant-...
    model: claude-3-haiku-20240307
  gemini:
    apiKey: ...
    model: gemini-1.5-flash
  ollama:
    baseUrl: http://localhost:11434
    model: llama3.2

Implementation Details

  • All providers implement the same AIProvider interface for consistent behavior
  • Provider configuration supports both config file and environment variable overrides
  • API keys are stored securely and only last 4 characters are displayed in UI
  • Batch classification is supported with rate limiting for API providers
  • Local provider wraps existing MobileBERT classifier for backward compatibility

Test Plan

  • Build passes without errors
  • Test sortora ai list command
  • Test sortora ai info command
  • Test sortora ai set <provider> for each provider
  • Test sortora ai test with configured provider
  • Test sortora scan --ai --provider <provider> for classification

This PR was written using Vibe Kanban

…Ollama)

Add external AI provider support for file classification:
- OpenAI (GPT-4o-mini by default)
- Anthropic Claude (claude-3-haiku by default)
- Google Gemini (gemini-1.5-flash by default)
- Ollama (local LLMs via ollama server)
- Local MobileBERT (existing offline classifier)

New CLI commands:
- `sortora ai list` - list available providers
- `sortora ai set <provider>` - set active provider
- `sortora ai test` - test current provider
- `sortora ai info` - show configuration

Configuration via environment variables or config file.
Usage: `sortora scan ~/Downloads --ai --provider openai`

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@d1maash d1maash changed the title Добавь возможность импортировать API от других провайдеров что бы они тоже работали для сортировки такие как OpenAI, Claude, Gemini и так далее (vibe-kanban) feat: add support for multiple AI providers Jan 25, 2026
@d1maash d1maash merged commit c7ec8ed into main Jan 25, 2026
0 of 9 checks passed
@d1maash d1maash changed the title feat: add support for multiple AI providers feat: Add support for multiple AI providers (OpenAI, Claude, Gemini, Ollama) (Vibe Kanban) Jan 25, 2026
@d1maash d1maash deleted the vk/f3b9-api-openai-claud branch January 25, 2026 00:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant